package com.phantom.netty.server.session;

import io.netty.channel.Channel;

import java.util.List;
import java.util.Set;

public interface GroupSession {

    /**
     * 创建一个聊天组，如果不存在才能创建成功
     */
    Group createGroup(String name, Set<String> members);

    /**
     * 加入聊天室
     */
    Group joinMember(String name, String member);


    /**
     * 移除组成员
     */
    Group removeMember(String name, String member);


    /**
     * 移除聊天组
     */
    Group removeGroup(String name);

    /**
     * 获取组成员
     * @param name 组名
     * @return 成员集合，没有成员会返回empty set
     */
    Set<String> getMembers(String name);

    /**
     * 获取组成员的Channel集合，只有在线的channel才能返回
     * @param name 组名
     * @return 成员channel集合
     */
    List<Channel> getMembersChannel(String name);

}
